from UIAutoTest.unittest_crud.ThreeCJG.Service import Service
import unittest
from ddt import ddt, data, unpack
from UIAutoTest.unittest_crud.ExcelRead.Excel_Read import ReadExcel


# 自定义清理函数
def clear():
    print('开始执行清理了哦')


# 单元测试类
@ddt  # 通过ddt实现数据驱动测试  给测试方法传输多组数据 从而自动生成多个测试用例
class ArticleCase(unittest.TestCase):
    excelList = ReadExcel().get_excel_data('测试用例', '内容填写')  # 读取Excel中的测试数据

    # 设置前置条件   一般用来设置测试环境
    def setUp(self):
        # 在后置条件执行结束后 执行清理函数
        self.addCleanup(clear)
        print('运行测试用例之前，我先运行哦')

    # 设置后置条件  一般用来清理环境 测试用例结束之后 清理一些数据或者环境 让其回到初始状态
    def tearDown(self):
        print('测试用例结束之后，我再运行')

    # 编写测试用例 测试添加文章的功能
    @data(*excelList)  # 将测试数据传入到测试方法中
    @unpack  # 将每条数据打散  传到对应的形参上
    def test_add_article(self, title, url, content, msg):
        # 实例化对象
        Service().add_haha(title, url, content)
        # 断言
        self.assertEqual(msg, 'pass', '添加失败')
        assert msg == 'pass', '添加失败'

    # @unittest.skip() 跳过该用例不运行
    @unittest.skip('02这个用例不运行')
    def test_02(self):
        self.assertEqual(1, 2, '1不等于2')

# 要想生成测试报告需要去TestReport.py中运行
